package DateTools;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间工具类
 *
 * @author bowen
 * 2015/4/4
 */
public class UtilDateTime {

    public static String FORMAT_SECOND_STRING = "yyyy/MM/dd HH:mm:ss";

    public static String FORMAT_DAY_STRING = "yyyy/MM/dd";

    public static SimpleDateFormat DAY_FORMAT = new SimpleDateFormat(FORMAT_DAY_STRING);
    public static SimpleDateFormat SECOND_FORMAT = new SimpleDateFormat(FORMAT_SECOND_STRING);

    /**
     * 获取当前日期字符串
     *
     * @return "2014-01-01"
     */
    public static String getNowDateString() {
        return DAY_FORMAT.format(new Date());
    }

    /**
     * 获取当前日期字符串
     *
     * @return "2014-01-01 00:00:00"
     */
    public static String getNowDateSecondString() {
        return SECOND_FORMAT.format(new Date());
    }


    /**
     * 获取当前日期timestamp
     *
     * @return 2014-01-01 00:00:00.000
     */
    public static Timestamp nowTimestamp() {
        return new Timestamp(System.currentTimeMillis());
    }


    /**
     * 根据日期字符串获取timestamp
     *
     * @param dateStr "2014-03-01"
     * @return timestamp "2014-03-01 00:00:00.000"
     */

    public static Timestamp getTimestamp(String dateStr) {
        return Timestamp.valueOf(dateStr + " 00:00:00.000");
    }


    /**
     * java.util.date 转化为string
     * @param date 需要转化的日期
     * @return 转化后的日期字符串
     */
    public static String getDateString(Date date){
        if(date != null) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            return sdf.format(date);
        }else {
            return "";
        }
    }

    /**
     * String类型的日期格式数据，转成指定格式的日期数据
     * @param strDate 字符串类型的日期格式数据
     * @param type 指定转成日期格式
     * @return
     */
    public static Date stringParseToDate(String strDate,String type) {
        Date date = null;
        try {
            date = new SimpleDateFormat(type).parse(strDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * String类型的日期格式数据，转成指定格式的日期数据
     * @param date 字符串类型的日期格式数据
     * @param type 指定转成日期格式
     * @return
     */
    public static String dateParseToString(Date date,String type) {
        return new SimpleDateFormat(type).format(date);
    }
}
